package main

import (
	"gitee.com/axzed/axzed-basic-go/webook/internal/web"
	"github.com/gin-contrib/cors"
	"github.com/gin-gonic/gin"
	"strings"
	"time"
)

func main() {
	server := gin.Default()
	server.Use(cors.New(cors.Config{
		// 同意全部源
		//AllowAllOrigins: true,
		// 枚举 有 bug
		//AllowOrigins: []string{"*"},

		// cookie 之类的数据是否允许携带
		AllowCredentials: true,
		// 在使用 JWT 的时候，因为我们使用了 Authorization 的头部，所以加上
		AllowHeaders: []string{"Content-Type", "Authorization"},
		// 为了 JWT，长短 token 的设置
		ExposeHeaders: []string{"X-Jwt-Token", "X-Refresh-Token"},
		AllowOriginFunc: func(origin string) bool {
			if strings.HasPrefix(origin, "http://localhost") {
				return true
			}
			return strings.Contains(origin, "your_company.com")
		},
		MaxAge: 12 * time.Hour,
	}))

	// 分布式注册路由
	c := &web.UserHandler{}
	c.RegisterRoutes(server)

	// 还可以注册别的类型路由
	server.Run(":8080")
}
